// const sequelize = require('@/db/seq');
const { DataTypes } = require('sequelize');
const sequelize = require("@/db/seq");

const DictionaryItem = sequelize.define('dictionary_items', {
  // key:{
  //   type: DataTypes.STRING,
  //   unique: true,
  //   allowNull: false,
  //   comment: '字典项键'
  // },
  value:{
    type: DataTypes.STRING,
    allowNull: false,
    comment: '字典项值'
  },
  label:{
    type: DataTypes.STRING,
    allowNull: false,
    comment: '字典项标签'
  },
  sort: {
    type: DataTypes.INTEGER,
    defaultValue: 0,
    comment: '字典项排序'
  },
  description:{
    type: DataTypes.STRING,
    comment: '字典项描述'
  },
  type_code:{
    type: DataTypes.STRING,
    allowNull: false,
    comment: '字典项类型code'
  },
  type_id:{
    type: DataTypes.INTEGER,
  },
  status:{
    type: DataTypes.INTEGER,
    defaultValue: 1,
    comment: '字典项状态'
  }
}, {
  freezeTableName: true
})
// DictionaryItem.sync({
//   force: false, // 是否强制同步，true: 强制同步，false: 不强制同步
//   alter: true, // 是否自动更新表结构，true: 自动更新，false: 不自动更新
// })
// .then(() => {
//   console.log('dictionary_items table synced successfully');
// })
// .catch((err) => {
//   console.error('Error syncing dictionary_items table:', err);
// })

DictionaryItem.associate = (models) => {
  DictionaryItem.belongsTo(models.dictionary_type, {
    foreignKey: 'type_id',
    as: 'typeById'
  });
  DictionaryItem.belongsTo(models.dictionary_type, {
    foreignKey: 'type_code',
    targetKey: 'code',
    as: 'typeByCode'
  });
  // DictionaryItem.hasMany(models.Article, {
  //   foreignKey: 'category_id',
  //   as: 'articles'
  // });
};
module.exports = DictionaryItem;
